Brainf*ckというプログラミング言語を知ってますか。
Brainf*ckは命令が「<>+-.,[]」の8種類しかない言語なんですけど、
こんな感じの言語だったら作れそうだなということでBrainPotatoを開発しました...w
GitHubで公開してるのでC++をコンパイルできる環境であれば実行できます。
これは追記ですが、C#でGUI版も作りました!この方が使い勝手が良いです...w
→これ
→exeファイルとしてWindows環境でコンパイルしたもの
C++版はShift-jis、C#版はUnicodeで文字を扱えます。
プログラミング言語の内容としては
命令 | 実行結果 |
---|---|
p | ポインタのアドレスをインクリメント(ptr++) |
o | ポインタのアドレスをデクリメント(ptr--) |
t | ポインタの値をインクリメント(*ptr+=1) |
m | ポインタの値をデクリメント(*ptr-=1) |
k | ポインタの値を文字として出力 |
u | ポインタの値が0ならnまで飛ばす |
n | ポインタの値が0以外ならuまで戻る |
i | ポインタの値が0ならaかe(eはaで閉じる)まで飛ばす |
e | iで飛ばされた場合のみaまで実行する |
a | 区切り用、これだけあっても何も実行しません |
c | ポインタの値を2倍する(*ptr*=2) |
h | ポインタの値を1/2倍する(*ptr/=2) |
s | キーボード入力を1文字受け取りポインタに格納する |
これだけです(これでもBrainf*ckよりは多い...w)
関係ない文字は無視される(ただし空白や改行といった文字はプログラムが途切れたと判断される)ので
pasta/kutte/tacos/
kuttara/umai/wa
(/を含む行が上手く自動改行してくれないので、変な改行したりしてます。
これの対処法知ってないですか?知ってたら教えて())
みたいな言葉遊びもできます()
(C#版は空白で区切ってもいいです。)
potatotimekun
は...動かないことはないですけどやるなら
potatOtimekuN
とかになりますかねw
ちなみに、プログラミング言語には著作権はありません。ただしプログラム自体には著作権があります。
最近僕のGitHubレポジトリにMITライセンスをつけたのでMITライセンスの規約に従えばどんな用途にでも使えます。
(つまり、GitHub上の僕のプログラムを別のプログラムに使って公開したりとかそのままでも改変してでも再配布とかする時に
Copyright (c) 2022 PotatoTimeKun
Released under the MIT license
https://github.com/
PotatoTimeKun/
programming/blob/main/
LICENSE.md
という文をREADMEといった文書に追加すればいかなる用途でも自由ということです。
ちなみにMITライセンスの仕様上、プログラムに欠陥等があったとしても僕は責任を負いません)